package com.crm.result;

import lombok.Data;

import java.util.List;

@Data
public class ActivityResult<T> {
    // 响应码，200 通常表示成功，可根据业务定义其他状态码
    private int code; 
    // 响应消息，描述操作结果，如“查询成功”
    private String msg; 
    // 额外参数（如统计信息等，可根据实际场景灵活调整类型）
    private T params; 
    // 数据列表，存放具体业务数据
    private List<T> rows; 
    // 总记录数，用于分页场景
    private Long total;

    // 快速构建成功响应的静态方法
    public static <T> ActivityResult<T> success(String msg, T params, List<T> rows, Long total) {
        ActivityResult<T> result = new ActivityResult<>();
        result.setCode(200);
        result.setMsg(msg);
        result.setParams(params);
        result.setRows(rows);
        result.setTotal(total);
        return result;
    }

    // 可根据需要扩展失败响应的静态方法，示例：
    public static <T> ActivityResult<T> fail(int code, String msg) {
        ActivityResult<T> result = new ActivityResult<>();
        result.setCode(code);
        result.setMsg(msg);
        return result;
    }
}